package projet.sax;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import projet.objetsmetier.Cheque;

/**
 * Cette classe permet la lecture d'une commande au format XML.
 * 
 * @author Maxime GOUFFE, Olivia GUIDEZ
 * 
 */
public class CommandeSAX extends DefaultHandler {
	private String texte;
	private String idProduit;
	private String idCommande;
	private int quantite;
	private Cheque cheque;

	public void characters(char[] arg0, int arg1, int arg2) throws SAXException {
		texte = new String(arg0, arg1, arg2);
	}

	public void endElement(String arg0, String arg1, String arg2)
			throws SAXException {
		if ("idProduit".equals(arg2)) {
			idProduit = texte;
		} else if ("quantite".equals(arg2)) {
			quantite = Integer.parseInt(texte);
		} else if ("idClient".equals(arg2)) {
			cheque.setIdClient(texte);
		} else if ("montant".equals(arg2)) {
			cheque.setMontant(Double.parseDouble(texte));
		} else if ("ordre".equals(arg2)) {
			cheque.setOrdre(texte);
		}
	}

	public void startElement(String arg0, String arg1, String arg2,
			Attributes arg3) throws SAXException {
		if (arg2.equals("commande")) {
			cheque = new Cheque();
			idCommande = arg3.getValue(0);
		} else if (arg2.equals("cheque")) {
			cheque = new Cheque();
			cheque.setIdCheque(arg3.getValue("idCheque"));
			cheque.setDevise(arg3.getValue("devise"));
			cheque.setIdGestionnaire(arg3.getValue("idGestionnaire"));
			cheque.setDateEmission(arg3.getValue("dateEmission"));
		}
	}

	public String getTexte() {
		return texte;
	}

	public void setTexte(String texte) {
		this.texte = texte;
	}

	public String getIdProduit() {
		return idProduit;
	}

	public void setIdProduit(String idProduit) {
		this.idProduit = idProduit;
	}

	public String getIdCommande() {
		return idCommande;
	}

	public void setIdCommande(String idCommande) {
		this.idCommande = idCommande;
	}

	public int getQuantite() {
		return quantite;
	}

	public void setQuantite(int quantite) {
		this.quantite = quantite;
	}

	public Cheque getCheque() {
		return cheque;
	}

	public void setCheque(Cheque cheque) {
		this.cheque = cheque;
	}

}